package com.lotusfall.mybatis.mapper;

import com.lotusfall.mybatis.pojo.Car;
import org.apache.ibatis.annotations.MapKey;

import java.util.List;
import java.util.Map;

public interface CarMapper {
    /**
     * 获取Car的总记录条数
     * @return
     */
    Long selectTotal();
    /**
     * 查询所有的Car信息，使用resultMap标签进行结果映射
     * @return
     */
    List<Car> selectAllByResultMap();


    // Map<String,Map>拿Car的id做key，方便取数据

    /**
     * 查询所有的Car，返回一个大Map集合
     * Map集合的key是每条记录的主键值，
     * Map集合的value是每条记录
     * @return
     */
    @MapKey("id") // 将查询结果的id值作为大Map的key
    Map<Long,Map<String,Object>> selectAllByRetListMap();

    /**
     * 查询所有汽车信息，返回一个放Map集合的List集合
     * @return
     */
    List<Map<String,Object>> selectAllByRetMap();

    /**
     * 根据id获取汽车信息，将汽车信息放到Map集合中
     * @param id
     * @return
     */
    Map<String,Object> selectByIdRetMap(Long id);

    /**
     * 根据品牌进行模糊查询
     * @return
     */
    Car selectByBrandLike(String brand);

    /**
     * 获取所有Car
     * @return
     */
    List<Car> selectAll();

    /**
     * 根据id查询Car信息
     * @param id
     * @return
     */
    Car selectById(Long id);
}
